1 REM SPRITE NUMBER DEMO V4 2 REM JAMES A. LISOWKSI, 902 WILLOW LN. 3 REM S. MILWAUKEE, WI 53172 4 REM PUBLIC DOMAIN SOFTWARE 5 : 10 REM----SET UP SPRITE ZERO 20 : 30 VS=53248:REM FIRST VIC-II REGISTER 40 SX=VS:SY=VS+1:REM SPRITE X/Y REG. 50 SN=VS+21:REM SPRITE ENABLE REG. 60 POKE2040,13:REM SPRITE MEM AREA 13 79 : 80 REM REMOVE REM IN LINE 90 FOR 82 REM UN-EXPANDED CHARACTER SIZE 90 POKEVS+29,1:POKEVS+23,1 100 : 110 REM----SET UP NUMBER PATTERNS 120 : 130 REM TURN INTERUPT OFF, SWITCH ROM IN 140 POKE56334,PEEK(56334)AND254 142 POKE1,PEEK(1)AND251 145 : 150 REM START OF ROM NUMBER PATTERNS 160 CS=53248+8*48 170 REM START OF RAM STORAGE AREA 180 CM=49152 190 REM TAKE CHARACTER INFO FROM ROM 200 REM AND PLACE IN INTO PROTECTED RAM 210 FORI=0TO80:POKECM+I,PEEK(CS+I):NEXT 220 REM TURN INTERUPT ON, SWITCH ROM OUT 230 POKE1,PEEK(1)OR4 240 POKE56334,PEEK(56334)OR1 250 : 300 REM----CLEAR SPRITE PATTERN 310 FORI=832TO894:POKEI,0:NEXT 320 : 330 : 500 REM==== DEMO MAINLINE ==== 510 : 520 REM SET MSB OF X POSITION TO OFF 530 POKEVS+16,0 540 : 550 REM SET SPRITE X/Y POSITION TO 100 560 POKESX,100:POKESY,100 570 : 580 REM CLEAR AND TITLE THE SCREEN 590 PRINT"[147]SPRITE NUMBER DEMO 1234567890" 600 : 610 REM SET SPRITE RANDOM SPRITE COLOR 620 POKEVS+39,RND(0)*15 630 : 640 REM GET A 1 TO 3 DIGIT POSITIVE # 650 NU=INT(RND(0)*999) 660 : 670 REM GOTO THE SPRITE SUBROUTINE, 680 REM TURN NUMBER NU INTO A SPRITE 690 REM AND DISPLAY IT IN MOTION 700 GOSUB 1000 710 : 720 REM WAIT A WHILE, THEN TRY ANOTHER 730 REM NUMBER 740 FORD=1000TO2000STEP5:POKESX,D/10 745 NEXTD:POKESN,0:POKESX,100:GOTO610 750 : 760 REM===== END OF MAINLINE ==== 770 : 780 : 900 REM----SPRITE NUMBER SUBROUTINE 910 : 920 REM---TURN THE SPRITE OFF 1000 POKE SN,0 1010 : 1020 REM---CLEAR PART OF SPRITE 1030 FORI=832TO852:POKEI,0:NEXTI 1040 : 1050 REM---MAKE NU A STRING 3 CHARACTERS 1060 REM IN LENGTH WITH LEADING SPACES 1070 NU$=RIGHT$(" "+STR$(NU),3) 1080 : 1090 REM---SELECT THE 3 DIGIT 1100 REM CHARACTERS, ONE AT A TIME 1110 REM AND CHANGE THE CHARACTER INTO 1120 REM A NUMBER ND, SKIP SPACES 1130 FOR CH=0TO2:IN=0 1140 CH$=MID$(NU$,(CH+1),1) 1150 IF CH$=" "THEN 1230 1160 ND=VAL(CH$) 1170 REM---GET THE CHARACTER PATTERN FOR 1180 REM THIS NUMBER AND PLACE IT IN 1190 REM THE PROPER SPRITE MEMORY AREA 1200 FOR I=(832+CH)TO(855+CH)STEP3 1210 POKE I,PEEK(IN+CM+ND*8):IN=IN+1 1220 NEXT I 1230 NEXT CH 1240 : 1250 REM---TURN FINISHED SPRITE ON AND 1260 REM RETURN TO MAIN PROGRAM 1270 POKE SN,1:RETURN